1. Field of the Invention
The present invention relates generally to digital mapping. More specifically, the present invention is related to geocoding operations designed to locate geographic objects where there is uncertainty about a portion of an object identifier such as a city in which the object is located.
2. Description of the Related Art
Many modern computing systems use digital maps to allow users to orient themselves, to find the locations of desired addresses, intersections, or businesses, to be directed to those locations, and for many other purposes. For example, maps and driving directions are available from many sites on the World Wide Web; many companies make maps of, and directions to, their office locations available to customers on the Web; many vehicles, hand-held computers, and even mobile phones contain navigation systems designed to assist drivers in locating specified destinations.
One process that is integral to the use of such systems is called “geocoding”. Geocoding is the process of converting a description of a location from a form meaningful to humans (for example, a street address, a street intersection, a highway exit number, or the name of a point of interest) to a form usable by computers (typically a numerical longitude and latitude). For example, in human-readable format, an address might appear in a form such as “Palo Alto Airport of Santa Clara County, 1925 Embarcadero Road, Palo Alto, Calif.”. The same address after geocoding could be “longitude −122.113085 degrees, latitude +37.453938 degrees”.
To request a map on the World Wide Web, a consumer describes the location at which the map should be centered; to request directions, the consumer describes the origin and destination. To make its list of locations available, a company converts the locations' street addresses to coordinates; then to find a location, the customer describes the starting point of the search. To obtain guidance from a mobile navigation system, the user describes the destination. There are of course many applications of geocoding in addition to those described here.
While the general definition of geocoding is broader, in practice most uses of geocoding take as input either street addresses (for example, street name, city, state or province, and optionally house number) or intersections (for example, two street names, city, and state or province). Although for simplicity we describe the present invention using these two applications of geocoding, this is purely for readability and is not intended to limit the application of the invention described below.
A major inconvenience in geocoding is that often end users are not sure what city an address or intersection is in. When many cities are in close proximity, a user may think an address or intersection is in one city when in fact it is in another nearby city. In such cases conventional geocoding software can fail: If the intersection of Grant and Pine is in Mayfield, then geocoding “Grant & Pine, Bellport” will fail, even if the intersection is just one block from Bellport.
Some conventional systems that geocode are forgiving of slight errors in specifying an address to be mapped. Typically, they work by knowing, for each city, all the adjoining cities, or all the cities that come within a specified distance of the specified city. The same may be true for postal code, county, or other geographic subdivision being specified. However, because these subdivisions are often irregular, and can be quite large, there is no upper bound on how far away a result can be from the original target city. For example, a user might be looking for an address in West Hollywood. Los Angeles is adjacent to West Hollywood, and is very large. Using a conventional system, a user who specifies a West Hollywood address might be presented with a result in Los Angeles that is actually very far away from West Hollywood and not relevant to the user's search.
In view of the foregoing, a need therefore exists for a way to locate a geographic object when a portion of the address has been specified incorrectly.